// 算法： 伪代码即可
// 需求1： 倒计时实现

// 需求2： 并发请求

const Fn = (limit) => {
  //  代码实现
  // 当前正在执行的并发数量
  let count = 0;
  const quque = []
  return (time) => {
    return new Promise((resolve, reject) => {
      if (count < limit) {
        count++;
        // 模拟异步请求
        setTimeout(() => {
          console.log(time);
          if(quque.length > 0) {
            quque.shift()()
          }

          resolve()
        }, time)
      } else {
        // 
        quque.push(() => {
          console.log('我可以执行了')
        })
        console.log(quque)
      }
    });
  };
};

const load = Fn(3);

load(2000); // promise
load(2000);
load(3000);

load(2000);
load(2000);
load(2000);
load(2000);
load(2000);
